<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');
session_start();

class jx_productos extends CI_Controller {

    private $establecimiento;
    private $inventario;

    public function __construct() {
        parent::__construct();
        $this->load->model('_productoM');
        $this->load->model('_categoria_productoM');

        $this->load->model('producto_x_ventaM');
        $this->load->model('producto_servicioM');
        $this->load->model('venta_producto_servicioM');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        
    }

    public function getProductos() {
        if (!empty($_POST)) {
            $this->escapar($_POST);
            echo $this->createTable($_POST['categoria']);
        }
    }

    public function createTable($categoria) {
        $table = $this->getInitTable();
        $table .= $this->getHeader($categoria);
        $table .= $this->getBody($categoria);
        $table .= $this->getEndTable();
        $table .= $this->getEndTable();
        return $table;
    }

    private function getInitTable() {
        return "<table class='table table-striped'>";
    }

    public function getHeader($categoria) {
        $categoria = $this->_categoria_productoM->get($this->establecimiento, $categoria);
        $this->inventario = ($categoria[0]->tiene_inventario == 1) ? true : false;
        $headers = array("Producto/Servicio", "Descripción", "Tarifa", "Inventario Actual", "Editar", "Borrar");
        $header = "<thead>";
        for ($i = 0; $i < sizeof($headers); $i++) {
            if ($i == 3) {
                if ($this->inventario)
                    $header.="<td><center><strong>{$headers[$i]}</strong></center></td>";
            }else {
                $header.="<td><center><strong>{$headers[$i]}</strong></center></td>";
            }
        }
        $header.="</thead>";
        return $header;
    }

    private function getBody($categoria) {
        $productos = $this->_productoM->getAll($this->establecimiento, $categoria);
        $body = "<tbody>";
        foreach ($productos as $producto) {
            $body.="<tr>
                    <td><center>{$producto->nombre}</center></td>
                    <td><center>{$producto->descripcion}</center></td>
                    <td><center>".(float)$producto->valor."</center></td>";
            if ($this->inventario)
                $body.="<td><center>{$producto->cantidad_actual}    <a href='#modalEditarInventario' class='btn btn-success btn-mini modificar-inventario' data-toggle='modal' data-nombre='{$producto->nombre}' data-cantidad_actual='{$producto->cantidad_actual}' data-id='{$producto->id_servicio}' >Modificar</a><a href='#modalVerModificacion' class='btn btn-primary btn-mini ver-modificacion' data-toggle='modal' data-producto='{$producto->id_servicio}' data-nombre='{$producto->nombre}'>Ver modificaciones</a></center></td>";
            $body.="<td><center><a href='#modalEditarProducto' class='mEditarProducto' data-id='{$producto->id_servicio}' data-nombre='{$producto->nombre}' data-descripcion='{$producto->descripcion}' data-valor='{$producto->valor}' data-cantidad_actual='{$producto->cantidad_actual}' type='button' data-toggle='modal'><i class='icon-edit icon-black'></i></a></center></td>
                    <td><center><form method='post' action='productos/eliminarProducto'> 
                                                    <input type='hidden' name='id_servicio' value='{$producto->id_servicio}'>
                                                    <input type='hidden' name='id_categoria_producto' value='{$producto->id_categoria_producto}'>
                                                    <button  class='btn btn-link eliminar' type='submit'><i class='icon-remove icon-black'></i></button>
                                                </form></center></td>
                      </tr>";
        }
        $body.="</tbody>";

        return $body;
    }

    private function getEndTable() {
        return "</table>";
    }

    public function setTab() {
        $this->escapar($_POST);
        $_SESSION['productos']['tab'] = $_POST['tab'];
    }

///////////////////////////// F U N C I O N E S   P A R A   V E N T A S
    public function search() {
        if (!empty($_POST)) {
            $this->escapar($_POST);

            $limit = 5;
            $offset = $_POST['pagina'] * ($limit) - $limit;

            $query = "SELECT v.id_venta_servicio, v.fecha, v.total_venta, v.tipo, c.nombre, u.usuario FROM CLIENTE c, USUARIO u, venta_producto_servicio v  WHERE c.id_cliente=v.id_cliente AND c.id_establecimiento='{$_SESSION['establecimiento']['id_establecimiento']}' AND v.usuario_encargado=u.id_usuario AND ";
            $query.=(!empty($_POST['tipoB'])) ? " lower(v.tipo) LIKE '" . strtolower($_POST['tipoB']) . "%' AND " : " ";
            $query.=" TRUE ORDER BY v.id_venta_servicio ";

            $result = $this->venta_producto_servicioM->query($query);
            $n = sizeof($result);
            $query.="LIMIT $limit OFFSET $offset";
            $this->createTableVentas($query, $_POST['pagina'], $n, $limit);
        }
    }

    //funcion encargada de crear la tabla con los resultados arrojados 
    public function createTableVentas($query, $pagina, $nFilas, $limit) {
        $table = "";
        $ventas = $this->venta_producto_servicioM->query($query);

        //  var_dump($productos);
        foreach ($ventas as $venta) {
            $class = "editar-persona";
            $table.="<tr>
                                    <td>$venta->id_venta_servicio</td>
                                    <td>$venta->fecha</td>
                                    <td>$venta->nombre</td>
                                    <td>$venta->total_venta</td>
                                    <td>$venta->tipo</td>
                                    <td>$venta->usuario</td>
                                    <td>
                                        <a href='#modalEditarClientePersona' class='btn btn-mini btn-inverse $class' type='button' data-toggle='modal' data-id='{$venta->id_venta_servicio}'>Ver mas</a>                                                                  
                                    </td>
                                </tr>  ";
        }

        echo "$table %%% " . $this->createPagination($nFilas, $pagina, $limit);
    }

    ////////////FUNCIONES PARA VER MODIFICACIONES

    public function getModificaciones() {
        if (!empty($_POST)) {
            $this->escapar($_POST);
          
            $producto = $_POST['producto'];
            $query = "SELECT mi.fecha as fecha,mi.descripcion as descripcion ,mi.tipo as tipo 
FROM producto_servicio ps,modificacion_inventario mi
WHERE ps.id_servicio=mi.id_servicio
AND ps.id_establecimiento='{$this->establecimiento}'
AND ps.id_servicio='{$producto}'
ORDER BY mi.fecha DESC";

            $modificaciones = $this->_productoM->query($query);

            $table = "";
           // var_dump($modificaciones);// exit;
            if (sizeof($modificaciones) == 0) {
                $table .= "<tr><td colspan='3'><center><p class='text-error'>No hay modificaciones para
                            este producto</p></center></td></tr>";
            } else {

                foreach ($modificaciones as $modificacion) {
                    //
                    $this->formatoFechaVista($modificacion->fecha);
                    $table .= "<tr>
                        <td>{$modificacion->fecha}</td>
                         <td>{$modificacion->descripcion}</td>
                         <td>{$modificacion->tipo}</td></tr>";
                }
            }
            echo $table;
        }
    }

    ///////////////////////////// F U N C I O N E S   C O M U N E S
    public function createPagination($n, $active, $limit) {
        $n = ceil($n / $limit);
        // return $n;
        $pagination = "<ul>";
        for ($i = 1; $i <= $n; $i++) {
            $pagination.="<li ";
            $pagination.=($i == $active) ? " class=active>" : ">";
            $pagination.="<a class='pagination' data-pagina='$i' href='#'>$i</a></li>";
        }
        $pagination .= "</ul>";
        return $pagination;
    }

}
